When wrapping a foreign W32 window, don't forget to store its HWND
authorРуслан Ижбулатов <lrn1986@gmail.com>
Fri, 25 Jul 2014 23:12:24 +0000 (23:12 +0000)
committerРуслан Ижбулатов <lrn1986@gmail.com>
Tue, 5 Aug 2014 06:37:24 +0000 (06:37 +0000)
When that window is later used as a parent for a GDK child, the call to
CreateWindow*() will fail, because its HWND is 0.

https://bugzilla.gnome.org/show_bug.cgi?id=733768

gdk/win32/gdkwindow-win32.c

index d9bb81ee1c51659e8fc3396c8c265424ea8f5c7a..5f2849697426adff73806782d56f556a85a5917c 100644 (file)
@@ -742,6 +742,7 @@ gdk_win32_window_foreign_new_for_display (GdkDisplay      *display,
   window->viewable = TRUE;
 
   window->depth = gdk_visual_get_system ()->depth;
+  GDK_WINDOW_HWND (window) = anid;
 
   g_object_ref (window);
   gdk_win32_handle_table_insert (&GDK_WINDOW_HWND (window), window);